The example below triggers the component to ask the user whether he/she wants to accept the server's instance certificate.
// This example shows how in a console application, the user is asked to accept a server instance certificate. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . using System; using OpcLabs.EasyOpc.UA; using OpcLabs.EasyOpc.UA.Engine; using OpcLabs.EasyOpc.UA.OperationModel; namespace UADocExamples.Interaction { partial class AcceptCertificate { public static void Instance() { // Do not implicitly trust any endpoint URLs. We want the user be asked explicitly. EasyUAClient.SharedParameters.EngineParameters.CertificateAcceptancePolicy.TrustedEndpointUrlStrings.Clear(); // Define which server we will work with. UAEndpointDescriptor endpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"; // Require secure connection, in order to enforce the certificate check. endpointDescriptor.EndpointSelectionPolicy = UAMessageSecurityModes.Secure; // Instantiate the client object. var client = new EasyUAClient(); UAAttributeData attributeData; try { // Obtain attribute data. // The component automatically triggers the necessary user interaction during the first operation. attributeData = client.Read(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10853"); } catch (UAException uaException) { Console.WriteLine("*** Failure: {0}", uaException.GetBaseException().Message); return; } // Display results. Console.WriteLine("Value: {0}", attributeData.Value); Console.WriteLine("ServerTimestamp: {0}", attributeData.ServerTimestamp); Console.WriteLine("SourceTimestamp: {0}", attributeData.SourceTimestamp); Console.WriteLine("StatusCode: {0}", attributeData.StatusCode); } } }
# This example shows how in a console application, the user is asked to accept a server instance certificate. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from OpcLabs.EasyOpc.UA import * from OpcLabs.EasyOpc.UA.Engine import * from OpcLabs.EasyOpc.UA.OperationModel import * # Do not implicitly trust any endpoint URLs. We want the user be asked explicitly. EasyUAClient.SharedParameters.EngineParameters.CertificateAcceptancePolicy.TrustedEndpointUrlStrings.Clear() # Define which server we will work with. endpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:51210/UA/SampleServer') # Require secure connection, in order to enforce the certificate check. endpointDescriptor.EndpointSelectionPolicy = UAEndpointSelectionPolicy(UAMessageSecurityModes.Secure) # Instantiate the client object. client = EasyUAClient() try: # Obtain attribute data. # The component automatically triggers the necessary user interaction during the first operation. attributeData = IEasyUAClientExtension.Read(client, endpointDescriptor, UANodeDescriptor('nsu=http://test.org/UA/Data/ ;i=10853')) except UAException as uaException: print('*** Failure: ' + uaException.GetBaseException().Message) exit() # Display results. print('Value: ', attributeData.Value) print('ServerTimestamp: ', attributeData.ServerTimestamp) print('SourceTimestamp: ', attributeData.SourceTimestamp) print('StatusCode: ', attributeData.StatusCode) print() print('Finished.')
' This example shows how in a console application, the user is asked to accept a server instance certificate. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Imports OpcLabs.EasyOpc.UA Imports OpcLabs.EasyOpc.UA.Engine Imports OpcLabs.EasyOpc.UA.OperationModel Namespace Interaction Partial Friend Class AcceptCertificate Public Shared Sub Instance() ' Do not implicitly trust any endpoint URLs. We want the user be asked explicitly. EasyUAClient.SharedParameters.EngineParameters.CertificateAcceptancePolicy.TrustedEndpointUrlStrings.Clear() ' Define which server we will work with. Dim endpointDescriptor As UAEndpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" ' Require secure connection, in order to enforce the certificate check. endpointDescriptor.EndpointSelectionPolicy = UAMessageSecurityModes.Secure ' Instantiate the client object. Dim client = New EasyUAClient() Dim attributeData As UAAttributeData Try ' Obtain attribute data. ' The component automatically triggers the necessary user interaction during the first operation. attributeData = client.Read(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10853") Catch uaException As UAException Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message) Exit Sub End Try ' Display results. Console.WriteLine("Value: {0}", attributeData.Value) Console.WriteLine("ServerTimestamp: {0}", attributeData.ServerTimestamp) Console.WriteLine("SourceTimestamp: {0}", attributeData.SourceTimestamp) Console.WriteLine("StatusCode: {0}", attributeData.StatusCode) End Sub End Class End Namespace
// This example shows how in a console application, the user is asked to accept a server instance certificate. // // Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . class procedure AcceptCertificate.Instance; var Arguments: OleVariant; AttributeData: _UAAttributeData; Client: OpcLabs_EasyOpcUA_TLB._EasyUAClient; ClientManagement: TEasyUAClientManagement; EndpointSelectionPolicy: _UAEndpointSelectionPolicy; ReadArguments: _UAReadArguments; Result: _UAAttributeDataResult; Results: OleVariant; begin // The configuration object allows access to static behavior. ClientManagement := TEasyUAClientManagement.Create(nil); ClientManagement.Connect; // Do not implicitly trust any endpoint URLs. We want the user be asked explicitly. ClientManagement.SharedParameters.EngineParameters.CertificateAcceptancePolicy.TrustedEndpointUrlStrings.Clear(); // Define which server we will work with. ReadArguments := CoUAReadArguments.Create; ReadArguments.EndpointDescriptor.UrlString := 'opc.tcp://opcua.demo-this.com:51210/UA/SampleServer'; // Require secure connection, in order to enforce the certificate check. EndpointSelectionPolicy := CoUAEndpointSelectionPolicy.Create; EndpointSelectionPolicy.AllowedMessageSecurityModes := UAMessageSecurityModes_Secure; ReadArguments.EndpointDescriptor.EndpointSelectionPolicy := EndpointSelectionPolicy; ReadArguments.NodeDescriptor.NodeId.ExpandedText := 'nsu=http://test.org/UA/Data/ ;i=10853'; Arguments := VarArrayCreate([0, 0], varVariant); Arguments[0] := ReadArguments; // Instantiate the client object. Client := CoEasyUAClient.Create; // Obtain attribute data. // The component automatically triggers the necessary user interaction during the first operation. TVarData(Results).VType := varArray or varVariant; TVarData(Results).VArray := PVarArray(Client.ReadMultiple(Arguments)); Result := IInterface(Results[0]) as _UAAttributeDataResult; if Result.Succeeded then begin AttributeData := Result.AttributeData; // Display results. WriteLn('Value: ', AttributeData.Value); WriteLn('ServerTimestamp: ', DateTimeToStr(AttributeData.ServerTimestamp)); WriteLn('SourceTimestamp: ', DateTimeToStr(AttributeData.SourceTimestamp)); WriteLn('StatusCode: ', AttributeData.StatusCode.ToString); end else WriteLn('*** Failure: ', Result.ErrorMessageBrief); VarClear(Results); VarClear(Arguments); FreeAndNil(ClientManagement); end;
The program output may look like this:
Copyright © 2004-2024 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Send Documentation Feedback. Resources: Knowledge Base, Product Downloads. Technical support: Online Forums, FAQ.Missing some example? Ask us for it on our Online Forums! You do not have to own a commercial license in order to use Online Forums, and we reply to every post.